let obj1: Object = {};
let arr: Array<number>;
let d1: Date = new Date();

// 这是有问题的
// let obj2: Object = {
//   x: 1,
//   y: 2
// }

// ok
let user: { username: string, age: number } = {
  username: 'kkb',
  age: 12
}

// 接口
// 提高复用性
// 缺点：只能作为标注使用，不能作为具体值
// 可以使用class解决上述问题

interface Person {
  username: string,
  age: number
}

let user2: Person = {
  username: 'a',
  age: 12
}

let user3: Person = {
  username: 'b',
  age: 14
}

class Person1 {
  constructor(public username: string, public age: number) {

  }
}

// 缺点：复杂
let user4: Person1 = new Person1('bkbk', 12);
